package com.xhtech.base.network.config

import com.google.gson.annotations.SerializedName
import com.yxh.lib_base.network.BaseResponse
import com.xhtech.base.network.ErrorNetWork

/**
 * 作者　: yuan_xh
 * 时间　: 2022/08/23
 * 描述　:服务器返回数据的基类
 * 继承BaseResponse，请求时框架可以帮你自动脱壳，自动判断是否请求成功，怎么做：
 * 1.继承 BaseResponse
 * 2.重写isSucces 方法，编写你的业务需求，根据自己的条件判断数据是否请求成功
 * 3.重写 getResponseCode、getResponseData、getResponseMsg方法，传入你的 code data msg
 */
data class ApiResponse<T>(
    @SerializedName("code") private val code: Int,
    @SerializedName("detail") private val errorMsg: String,
    @SerializedName("data") private val mData: T
) : BaseResponse<T>() {
    @SerializedName("result") private val result: Boolean = true
    // 这里是示例，wanandroid 网站返回的 错误码为 0 就代表请求成功，请你根据自己的业务需求来改变
    override fun isSuccess() = code == ErrorNetWork.NET_WORK_SUCCESS.id

    override fun getCode(): Int =code

    override fun getMsg() = errorMsg

    override fun getData(): T =mData

}